#include <iostream>
#include <memory>
using std::cout;
using std::endl;
using std::auto_ptr;

void test0(){
    /* auto_ptr<int> ap(new int(5)); */
    /* cout << "*ap:" << *ap << endl; */

    int * pInt = new int(10);
    auto_ptr<int> ap(pInt);
    /* auto_ptr<int> ap2(pInt); */

    auto_ptr<int> ap2(ap);
    cout << "*ap2:" << *ap2 << endl;
    cout << "*pInt:" << *pInt << endl;
    //猜测：通过auto_ptr的拷贝构造
    //从ap拷贝出ap2对象
    //实际是一个控制权移交的过程
    //ap的指针被置空了
    cout << "*ap:" << *ap << endl;
}

int main(void){
    test0();
    return 0;
}
